<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    
    // 完整语法
    // const fn = (a) => {
    //     return a + " zhangsan";
    // }
    // console.log( fn("hello") );

    // 有且只有一个参数时，可以省略小括号

    // const fn = a => {
    //     return "hello " + a;
    // }
    // console.log( fn("lisi") );

    // 有且直接返回数据的时候，可以省略花括号和return，必须同时省略

    // const fn = a => "hello " + a;
    // console.log( fn("wanger") );

    // ======

    // 参数小于一个，省略小括号，错误语法
    // const fn = => {
    //     console.log("hello");
    // }

    // 参数大于一个，省略小括号，错误语法
    // const fn = a,b => {
    //     console.log(a,b);
    // }

    // 只省略花括号，不省略return，错误语法
    // const fn = a => return "hello " + a;

    // 只省略return，没有省略花括号，没有返回值（undefined）
    // const fn = a => {
    //     "hello " + a;
    // }
    // console.log( fn("admin") );


    // =====


    // 如果直接返回一个花括号对象，需要使用小括号将花括号再包裹起来，才能使用极简语法
    // const fn = () => ({ name:"admin" });
    // console.log( fn() );


    // =====

    // this：当前函数的执行对象

    // const obj = {
    //     name:"obj",
    //     fn:()=>{
    //         console.log(this);
    //     },
    //     fun:function(){
    //         console.log(this);
    //     },
    //     foo:function(){
    //         const f = ()=>{
    //             console.log(this);
    //         }
    //         f();
    //     }
    // }
    // obj.fn();
    // obj.fun();
    // obj.foo();






</script>
</html>